eslint-config-mapbox
Shared ESLint config for Mapbox engineering teams.
Quick start with Node.js
-
Install the following dev-dependencies:
npm install --save-dev \
@mapbox/eslint-config-mapbox \
eslint \
eslint-plugin-node
-
Extend the @mapbox/eslint-config-mapbox
config in your .eslintrc
(or eslintConfig
key in your package.json
):
"eslintConfig": {
"extends": "@mapbox/eslint-config-mapbox"
}
-
Specify the version of Node.js your project uses by setting .engines.node
in your package.json
.
{
"engines": {
"node": ">=6"
}
}
-
Run eslint
on your project as part of your test
and lint
scripts:
{
"scripts": {
"test": "tape test/*.test.js && eslint *.js test/*.js",
"lint": "eslint *.js test/*.js"
}
}
Usage
The "Quick start" above exemplifies usage of this package with standard Node.js code.
Depending on the ECMAScript version of your code, whether you are using non-standard syntax like Flow and React's JSX, or other considerations, you may want to extend a variety of configurations provided by this package. eslint-config-mapbox
exposes several configurations targeting specific ESLint plugins, each named after the plugin it targets.
To use each plugin-specific configuration, you'll need to do the following:
-
Install as dev-dependencies @mapbox/eslint-config-mapbox
, eslint
, and any plugins that are used by the configuration(s) you are extending, such as eslint-plugin-node
or eslint-plugin-react
.
-
Add the configuration(s) you are using to the "extends"
array in your project's ESLint configuration, like this:
{
"extends": [
"@mapbox/eslint-config-mapbox/react",
"@mapbox/eslint-config-mapbox/import",
"@mapbox/eslint-config-mapbox/promise"
]
}
Plugin-specific configurations
With Prettier
If you are using Prettier to format your JS, install eslint-config-prettier and add it at the end of your "extends"
array. It will turn off all ESLint rules related to the code-style preferences that Prettier already addresses.